package biz.datalk.industrialland.common.def;

/**
 * 正则表达式
 * @author tarofang@163.com
 * @date 2019-08-20
 */
public abstract class Regex {

    public static final String NUM = "^[0-9]*$";

    /** 匹配 字母大小写、数字、-、_   用于编号、ID等唯一标识 */
    public static final String UNIQUE_ID = "^[a-zA-Z0-9_-]+$";

    /** 匹配 字母大小写、数字  用于编号、ID等唯一标识 */
    public static final String UNIQUE_CODE = "^[a-zA-Z0-9]$";

    /** 匹配 简繁中文 (字符串前后不能有空白) */
    public static final String CHINESE = "^([\\u4E00-\\u9FFF]+)$";

    /** 匹配邮箱 */
    public static final String EMAIL = "^\\w+([-+\\.]\\w+)*@\\w+([-\\.]\\w+)*\\.\\w+([-\\.]\\w+)*$";

    /** 匹配IPv4地址 */
    public static final String IP = "^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])(\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])){3}$";

    /**
     * 匹配手机号码
     * 不能以0开头，xxxxxxxxxxx|xxx-xxxxxxxx|xxx-xxxx-xxxx
     */
    public static final String MOBILEPHONE = "^([1-9]\\d{10})|([1-9]\\d{2}-\\d{8})|([1-9]\\d{2}-\\d{4}-\\d{4})$";

    /**
     * 匹配11位纯数字手机号码
     * 不能以0开头，xxxxxxxxxxx
     */
    public static final String MOBILE_PHONE_NUMBER = "^([1-9]\\d{10})$";

    /**
     * 匹配身份证号码
     * 15位纯数字，18位最后一位可以是数字或字母Xx，其余必需是数字
     */
    public static final String IDCARD = "^(\\d{15}$|^\\d{18}$|^\\d{17}(\\d|X|x))$";
}
